From: Justin Chadwell Date: Wed, 3 Jul 2019 13:15:56 +0000 (+0100) Subject: Enable -Wshift-overflow=2 to check for undefined shift behavior X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22http:/www.crowdsec.net/%22/%22https:/collectd.org/%22http:/www.crowdsec.net/%22?a=commitdiff_plain;h=93c690eba8ca;p=project%2Fbcm63xx%2Fatf.git Enable -Wshift-overflow=2 to check for undefined shift behavior The -Wshift-overflow=2 option enables checks for left bit shifts. Specifically, the option will warn when the result of a shift will be placed into a signed integer and overflow the sign bit there, which results in undefined behavior. To avoid the warnings from these checks, the left operand of a shift can be made an unsigned integer by using the U() macro or appending the u suffix. Change-Id: I50c67bedab86a9fdb6c87cfdc3e784f01a22d560 Signed-off-by: Justin Chadwell --- diff --git a/Makefile b/Makefile index 471cf598..c4730929 100644 --- a/Makefile +++ b/Makefile @@ -256,9 +256,14 @@ WARNINGS += -Wunused -Wno-unused-parameter \ -Wvla ifeq ($(findstring clang,$(notdir $(CC))),) +# not using clang WARNINGS += -Wunused-but-set-variable \ -Wmaybe-uninitialized \ - -Wpacked-bitfield-compat + -Wpacked-bitfield-compat \ + -Wshift-overflow=2 +else +# using clang +WARNINGS += -Wshift-overflow -Wshift-sign-overflow endif ifneq (${E},0)